<?php

class Styles {

    private $_styles = array();

    public function getStyles() {
        return $this->_styles;
    }

    public function setStyles($styles) {
        $this->_styles = $styles;
        return $this;
    }
    
    public function addStyle($style){
        array_push($this->_styles, $style);
    }
    
    function __construct(array $donnees) {
        $this->hydrate($donnees);
    }

    public function __toString() {
        return print_r($this->_styles, true);
    }

    public function hydrate(array $donnees) {
        foreach ($donnees as $key => $value) {
            // On récupère le nom du setter correspondant à l'attribut.
            $method = 'set' . ucfirst($key);

            // Si le setter correspondant existe.
            if (method_exists($this, $method)) {
                // On appelle le setter.
                $this->$method($value);
            }
        }
    }

}

?>
